Effect System
プログラム内のComputational Effectを形式的に記述する手法
Computational Effectをコンパイル時に静的に検証できる
型を拡張したEffect Componentで表現する
表示的意味論では型 ! effectsという表記がされる
読んでないが『Type and Effect Systems』でも!が出てくるのがわかる
参考
monadからeffectへ - Just $ A sandbox
Notions of Computations and Effects - Just $ A sandbox
Effect system - Wikipedia
#WIP
Effect Component
とは #??
以下はUS wikiを読んだ理解なのでまったくふわっとしているmrsekut.icon
effect kindとregionを持つ
effect kind
region
リージョンのこと #??
Effect Systemで扱えるものの例
メモリの読み書き
線形型っぽいmrsekut.icon
ファイルのopen, close
継続、goto, COMEFROM文
JavaのChecked Exception
関連
monadic effect
Algebraic Effects and Handlers
Computational Effectを代数的に扱う
Effect Systemとだいたい同じ。
↑のことをAlgebraic Effectsと呼ぶ人もいるらしい ref
Computational Effect
副作用
Heftia
https://zenn.dev/lanexpr/articles/5bc6f957a7fde4
https://zenn.dev/lanexpr/articles/9061f0121f3cf5
https://zenn.dev/lanexpr/articles/b63f31525c0a4d
https://zenn.dev/lanexpr/articles/de512ce5650518
例
Eff
Koka
F*とか?
Haskell
Extensible Effects
Freer Effects
fumieval/extensible
↑この辺は、Monadしか扱えないHaskellの世界で、Monadの一般化であるEffect systemを表現しようとしたもの ref
OCamlのocaml-effects
Frank
Nim
https://qiita.com/tauplus/items/80afbd47f3a44158ea1f#エフェクトシステムeffect-system
https://forum.nim-lang.org/t/1700
graded monad
参考
http://web.cs.ucla.edu/~palsberg/tba/papers/nielson-nielson-csd99.pdf
この論文が良いらしいmrsekut.icon
http://myuon-myon.hatenablog.com/entry/2017/07/15/200203
http://eed3si9n.com/learning-scalaz/ja/Effect-system.html
https://nymphium.github.io/2019/05/28/技術書典6に合同誌を出した;-effect-system勉強会をやった.html
/nekketsuuu/effect system勉強会
http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/c1371.html
ATS言語
http://myuon-myon.hatenablog.com/entry/2017/07/11/131913
https://nymphium.github.io/2019/12/22/effsub.html
https://nymphium.github.io/pdf/typefest.html
https://nymphium.github.io/2021/04/09/PPL-2021を-スポンサー枠で.html
https://keens.github.io/slide/effective_idris__effects/
https://myuon-myon.hatenablog.com/entry/2017/07/15/200203
JS
https://github.com/awto/effectfuljs
https://github.com/lexi-lambda/eff
haskell
https://www.stephendiehl.com/posts/exotic03.html
https://xn--i2r.xn--rhqv96g/2021/09/14/redundant-constraints/
https://hackage.haskell.org/package/effet
https://gfngfn.github.io/ja/posts/2022-06-12-language-design-for-unit-testing/#:~:text=よさそうだ%EF%BC%8E-,モックのための言語設計,-ユニットテストに